package com.leyou.cart.controller;

import com.leyou.cart.entity.Cart;
import com.leyou.cart.service.CartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 分析购物车数据结构
 * String，hash，list，set，zSet
 *  这里为了放别修改某个购物车数据，采用hash结构：<key, <hKey, hValue>>
 *  key ----  userId
 *  hKey ---  skuId
 *  hValue -  Cart对象
 */
@RestController
public class CartController {

    @Autowired
    private CartService cartService;

    /**
     * 添加购物车  @PostMapping("/hello")  /api/cart/hello
     * @param cart
     * @return
     */
    @PostMapping("/")
    public ResponseEntity<Void> saveCart(@RequestBody Cart cart){
        cartService.saveCart(cart);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }

    /**
     * 查询购物车
     */
    @GetMapping("/list")
    public ResponseEntity<List<Cart>> findCarts(){
        List<Cart> carts = cartService.findCarts();
        return ResponseEntity.ok(carts);
    }

    /**
     * 批量添加购物车
     */
    @PostMapping("/list")
    public ResponseEntity<Void> saveCarts(@RequestBody List<Cart> carts){
        cartService.saveCarts(carts);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }


}
